using System;
using System.Collections.Generic;
using InvestmentIntelligence.DbModel.Models;

namespace InvestmentIntelligence.Data.Repository
{
    public interface ISqlTimeSerieRepository
    {
        List<TimeSerieAdbInfo> GetAdbInfos(int securityId, DateTime? startDate = null, DateTime? endDate = null, TimeSerieAdbSearchOptions options = new TimeSerieAdbSearchOptions());
        //TimeSerieAdbInfo GetPrevAdbInfo(int securityId, DateTime date, TimeSerieAdbSearchOptions options);
        //TimeSerieAdbInfo GetNextAdbInfo(int securityId, DateTime date, TimeSerieAdbSearchOptions options);
        IEnumerable<TimeSerieAdbInfo> EnumerateBackward(int securityId, DateTime date);
        IEnumerable<TimeSerieAdbInfo> EnumerateForward(int securityId, DateTime date);
        List<TraceReturnAdbInfo> GetReturns(int securityId, DateTime eventDate, int priorWindow, int postWindow);
        //ICollection<SeriesRange<TimeSerieAdbInfo>> LoadRanges(IDictionary<int, IList<Tuple<DateTime, DateTime?>>> dateRanges);
        Dictionary<int, List<TimeSerieAdbInfo>> LoadByOriginalPositions(int fundBookEntityId);
    }
}